一、 双引号里面的是字符串 , 而单引号里面的代表字符
你可以这样理解 只要是在双引号里面的不代表任何表达式的意义 假如 int a=10 cout<<"a";这是用 双引号 它在屏幕上就是 a
而 int a=10 cout<<a; 这个a就代表表达式a=10在屏幕上是10 而int a=10 cout<<‘a’;将会是65 因为用单引号里面的代表字符而字符要用ASCII码表示
二、大小不同。用单引号引起的一个字符大小就是一个字节。
而用双引号引起的字符串大小是字符的总大小+1,因为用双引号引起的字符串会在字符串末尾添加一个二进制为0的字符'\0'。
三、malloc函数
传递给malloc的参数,是字节数,即分配多少字节。如果分配失败,malloc将返回NULL。
例子:
现在,ptr指向的是一个预留的100字节的内存块。<span style="font-family:Times New Roman;font-size:18px;"><strong>char *ptr; ptr = malloc( 100 * sizeof(char));</strong></span>
用完之后,要用——free(ptr); 来释放malloc()分配的内存空间。
四、显示字符串和字符
显示工作,通常用 puts() 和 printf() 来完成。
puts() 只接收一个参数,就是——要显示的字符串的首地址的指针。
![]()
printf()函数,用于字符串输出
char *str = "A message to display";
printf("%s",str);
五 、 从键盘读取字符串
gets()从键盘读取一个字符串,不断的从键盘读取字符,直到遇到换行符(按下回车提供换行符)为止。然后gets()丢弃换行符,添加一个空字符,构成字符串。
char input[20];
gets(input);
printf("%s",input);
gets(str); 应该是把接收到的字符串存入数组str,然后返回的也是str。
-------------------------------------------
scanf()读取字符串
char s1[100];
scanf("%s",s1); ——scanf里面用到的都是地址,这里 s1 就是地址。