C語言 Char* 和Char 用法


版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接: https://blog.csdn.net/imxlw00/article/details/92105004
  • char []定義的是一個字符數組,注意強調是數組。
  • char * 定義的是一個字符串指針,注意強調是指針。

char *s定義了一個char型的指針,它只知道所指向的內存單元,並不知道這個內存單元有多大,所以:

當char *s = “hello”;后,不能使用s[0]=‘a’;語句進行賦值。這是將提示內存不能為"written"。

當用char s[]=“hello”;后,完全可以使用s[0]=‘a’;進行賦值,這是常規的數組操作。
若定義:

1 char s[] = "hello";
2 char *p = s;

 

 

也可以使用p[0] = ‘a’;因為這是p ==s,都是指向數組的指針。

1 char *s = (char *)malloc(n);//其中n為要開辟空間的大小

相當於

1 char s[n];

 

1 #include <stdio.h>
2 int main(int argc, char* argv[]) {
3     char* buf1 = "abcd1234";
4     char buf2[] = "abcd1234";
5     printf("size of buf1: %d\n", sizeof(buf1));
6     printf("size of buf2: %d\n", sizeof(buf2));
7     printf("長度為:%d  %d\n", strlen(buf1), strlen(buf2));
8 return 0;

 

size of buf1: 4 
size of buf2: 9
長度為:8 8


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM