结论1️:char * buf = "123";//buf指针创建于栈区,它指向的“123”位于字符串常量区;char * buf1 ="123";//buf1指针创建于栈区,它指向的“123”位于字符串常量区;由上面的地址打印可以知道buf和buf1都指向同一块地址,正是指向常量区的原因buf[0]= 'a';这样的操作会报错,常量区内容不可修改。 结...
同意楼上。指针类型的意义一定程度上体现在它所指向目标的类型。char *buf声明一个变量buf,该变量所存放的内容默认被解释为一个字符型变量在内存中的(首)地址;(lpHeader *)buf将buf所存放的内容取出并解释为一个lpHeader类型变量在内存中的(首)地址——但buf本身仍然为原来的数据类型。如果lpHeader...
char *s = (char *)malloc(n(www.jb51.net));//其中n为要开辟空间的大小 这句话其实相当于: char s; 定义的也是一个指向数组的指针,便可进行数组的下标操作 例子 #include <stdio.h> int main(int argc, char* argv) char* buf1 = "this is a test"; char buf2 = "this is a test"; prin...
buf 是定义的一个数组名,也是数组首地址;而char表示你数组元素的类型,即是你定义的数组元素只能是字符型的;而50则表示数组元素的个数,你定义的是50,也就是说,从0到49这些元素。
这是一句C/C++代码。简单说就是定义一个16个元素的字符数组,并初始化为0 char:是类型关键字,是字符数剧类型 buf是标识符。一般来说 表示 缓冲区。buf[16]是一个叫buf的数组,它有16个元素。= {0}; //初始化为0
char buf[80];这就是申请一个长度为80个字节的空间,作为字符数组使用。这个空间的首地址为buf。在这段空间中,最多可以存放80个ASC字符。如果用来存储字符串,则字符串的最大长度为79个字节(最后必须有一个字节存放字符串结束标记'\0')。
可以这样理解 char *p; //定义一个指针p,其指向一个char类型 p=(char *)buf; //将buf 强制转化为指向char的指针变量结果赋予p
如果是你只想要100长度的数组,那么char buf[100] 与 char buf = new char[100]等价。但如果你想动态分配大小,那就只能用char buf = new char[n],其中n为你想要的大小
charbuf[100] ="你好世界";//GBK编码的汉字一个汉字两个字符
可以收到的啊,不过要注意buf当参数的时候是以一个char型指针传给函数的,所以你的函数申明时参数写明char*,如 void test(char * buf){ puts(buf);}