日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

指针-字符指针

發布時間:2025/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 指针-字符指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Part1:

數組函參 字符指針 基本用法 常量字符串

我們把要把數組傳入函數時,其實傳入的是一個地址,對地址內的內容進行修改,對其進行sizeof的話得到的不是數組所占空間,而是指針所占的空間。

#include<stdio.h>void mylen(int arr[]) {int sz = sizeof(arr) / sizeof(arr[0]);printf("%d", sz); } int main(void) {int arr[10] = { 0 };mylen(arr);return 0; }//其結果為1/2

字符指針:我們一般是先定義一個字符a,再定義一個字符指針變量指向a。

char test='a'; char* p=&test;

或者定義一個字符數組,再定義一個指針變量指向它。

char arr[]="abcdef"; char* p=arr;

如果我們直接定義一個指針變量,再將一個字符或字符串賦給指針變量,其實賦的是第一個字符的地址。這樣的字符串被稱為常量字符串。

char* p="abcdef";

為什么稱之為常量字符串呢?按照我們之前的理解,我們有一個指向首字符的指針是不是可以對其進行修改呢?

#include<stdio.h>int main(void) {char* p = "abcdef";*p = 'W';printf("%s", p); }

這里運行是程序是會崩潰的。但是編譯器并不會報錯,為了解決這個問題,我們再定義時可以加上const

const char* p="abcdef";

Part2:

常見錯誤 比較字符數組 常量空間

我們在做題目的時候時常遇見比較兩個數組的判斷條件,這個時候如果直接比較數組名,那其實是在比較地址。

char arr[] = "abcdef";char arr1[] = "abcdef";if(arr==arr1)//地址并不相同

常量字符串,如果兩個常量字符串相同,那么系統是不會開辟兩塊空間去存放的,這個時候如果用兩個指針指向它,其存放的地址是相同的。

char* p = "abcdef";char* q = "abcdef";if(p==q)//由于常量相同,p與q的值相同

總結

以上是生活随笔為你收集整理的指针-字符指针的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。