c语言中char* 代表什么

简介:

1 c语言中,char* 代表 字符指针类型,当其指向一个字符串的第一个元素时,它就可以代表这个字符串了

2 示例

#include<stdio.h>

int main(){

    char* str = "learn c";

    printf("%s\n", str);

    getchar();

    return 0;

}

/*运行结果是

learn c

*/

3 分析

  在char* str="learn c";中,"learn c"是长度为8的字符数组常量,其最后一个元素是'\0',而这句代码执行的结果是将str指向了"learn c"的第一个字符'l',str后面的连续内存依次存放'e','a','r','n',' ','c','\0'


4 扩展

  c语言中的字符串是用字符数组来表示的,只是c语言规定了一个字符串结束标志,即字符'\0',也就是遇到字符'\0'时,这个字符串就结束了


5 关于 * 和 & 的谜题


假设有一个 int 类型的变量 a,pa 是指向它的指针,那么*&a和&*pa分别是什么意思呢?


*&a可以理解为*(&a),&a表示取变量 a 的地址(等价于 pa),*(&a)表示取这个地址上的数据(等价于 *pa),绕来绕去,又回到了原点,*&a仍然等价于 a。


&*pa可以理解为&(*pa),*pa表示取得 pa 指向的数据(等价于 a),&(*pa)表示数据的地址(等价于 &a),所以&*pa等价于 pa。



本文转自 skinglzw 51CTO博客,原文链接:http://blog.51cto.com/skinglzw/1923815,如需转载请自行联系原作者

相关文章
|
1月前
|
存储 编译器 C语言
c语言中char的作用类型
c语言中char的作用类型
21 0
|
6月前
|
存储 C语言
C 语言实例 - 计算 int, float, double 和 char 字节大小
C 语言实例 - 计算 int, float, double 和 char 字节大小。
33 1
|
6月前
|
存储 小程序 程序员
8k字详解整型(int)/字符型(char)/浮点型(float)/有符号(signed)/无符号(unsigned)数据在内存中的存储【程序员内功修炼/C语言】
8k字详解整型(int)/字符型(char)/浮点型(float)/有符号(signed)/无符号(unsigned)数据在内存中的存储【程序员内功修炼/C语言】
62 0
|
7月前
|
存储 C语言
C语言:char与unsigned char类型数据的范围
unsigned char 的范围是 0~255,当 i=255 时,i++变为0,从0到255无限循环,因此程序运行结果为死循环
139 0
|
10月前
|
C语言
C语言有关char数组的一个经典例题及char的取值范围推导的思维图
C语言有关char数组的一个经典例题及char的取值范围推导的思维图
|
10月前
|
存储 人工智能 编译器
C语言char类型的存储
字符型(char)用于储存字符(character),如英文字母或标点。但是char类型在内存中并不是以字符的形式储存,而是以ASII码的形式储存,也可以说char类型储存的实际上是整数。所以char类型也被归类为整形家族。
170 0
|
11月前
|
C语言 C++
【C语言】char类型的取值范围
首先我们知道在 C/C++ 中,char类型大小为1字节,即8bit。
|
C语言
C语言程序练习——(写一个函数,它的原形是int continumax(char *outputstr,char *intputstr))
C语言程序练习——(写一个函数,它的原形是int continumax(char *outputstr,char *intputstr))
|
存储 测试技术 C语言
C语言中字符串之间的比较【char*】/【string】
C语言中字符串之间的比较【char*】/【string】
845 0
C语言中字符串之间的比较【char*】/【string】
|
人工智能 C语言
【C语言】char类型在内存中的储存
【C语言】char类型在内存中的储存
【C语言】char类型在内存中的储存