char *a 與char a[] 的區別
char* a = "hello"; 和 char a[] = "hello"; 的區別:
1、
char* a = "hello"; 中的a是指向第一個字符h的的指針變量。
第2行說明a所指向的字符串是在靜態存儲區的,無法修改。
所以可以在靜態存儲區的變量前加const來防止對其修改,在編譯時就可以提示錯誤。
變成 const char* a = "hello";
第3行,a是一個指針變量,可以修改指向到新的的字符串"sdf"
第4行,a是一個指針變量,可修改指向
2、
char a[] = "hello"; 中的a是數組名,可作為指向第一個字符h的的指針常量。
第2行說明a所指向的字符串是在棧,可以修改
第3行說明數組名a是指針常量,不可修改指向。
char *a 與char a[] 的區別
相關推薦
char *a與char a[n]的區別
機制 strcat 停止 添加 字符 區別 是把 har 自動 char *a=‘ab‘;//a[2]一定為‘\0‘,但是,a[5]這樣的指針越界不會報錯 char a[3] = {‘a‘,‘a‘,‘a‘};//a[3]屬於越界,會報錯 char b[5]={‘b‘,‘b‘
char *a 與char a[] 的區別
第一個 4行 常量 指向 字符串 區別 png com ons char* a = "hello"; 和 char a[] = "hello"; 的區別: 1、 char* a = "hello"; 中的a是指向第一個字符h的的指針變量。 第2行說明a所指向的字符串是在
關於Char *a與Char a[]中變數佔用空間的大小(Windows 7 32位)
去面試時幾家公司很愛在char *和char []上做文章,很基礎也容易犯錯。面試題裡很喜歡折騰這些內容,在這裡簡單的做個比較。 如果有錯誤,請指正。 1、Test 1 //字元陣列大小未指定大小,指標變數運算元沒有型別 #include <iostream>
c語言中char *name 與char name 的區別
要點:char* name="abc"指的是常量字串,不可以修改指標,是相容老的寫法;char[] name="abc"是指標,可以修改;在學習過程中發現了一個以前一直預設的錯誤,同樣char *c = "abc"和char c[]="abc",前者改變其內容程式是會崩潰的,
char *name 與 char name[]的區別(基礎知識)
在學習過程中發現了一個以前一直預設的錯誤,同樣char *c = "abc"和char c[]="abc",前者改變其內容程式是會崩潰的,而後者完全正確。 程式演示: 測試環境Devc++ 程式碼 #include <stdio.h>#include <string.h>main(
Linux .a與.so的區別
在linux平臺上編譯時,常會遇到目標庫的疑問,有靜態庫也有動態庫,單個理解都不太難,但是對複雜的工程而言,一旦混合到一起去,對整個工程的理解和呼叫,將會造成很大困擾,本文就彙總這幾種常見編譯結果檔案的區別。 一、格式說明 linux下編譯,常會遇到字尾為:.o .s
char *img_name與char img_name[]的區別
在MFC的按鈕訊息響應中寫如下程式碼: (1)char img_name[100]="..\\dataset\\holidays\\images\\"; (2)const char *src=result[k]; (3)strcat(img_name,src); (4)Ip
14443-A 與14443-B區別
常用的RFID卡分佈在高頻和超高頻。 高頻卡目前的頻率主要是13.56MHz。有幾種標準;ISO-14443-A、ISO-14443-B、ISO-15693、ISO-18000-3; 超高頻的有ISO-18000-6和EPC標準。 ISO-14443-A和ISO-14443-B的主要區別在於編碼方式。ISO
char陣列與char指標的區別與聯絡
字串(char*)與字元陣列(char[])區別 在C語言中,對字串的操作主要有兩種方式:一是字元陣列(char[]),二是使用字元指標(char*)。接下來最這兩種所使用的情況做徹底的說明: 一、字元陣列字元陣列的定義有兩種方式:1.char s[n];n表示資料的大小。該語句可以理解為 宣告一個字元陣列,
int a[]與int* a的區別
當你凝視深淵的時候,深淵也在凝視你。 作者: [email protected] NOTE: 此文件只是個人理解,其中如有錯誤望可以指正。 結論是這樣式兒的: 指標佔用記憶體空間儲存地址;陣列名是一個數組起始的位置。指標的指向可以
功能概述:簡單介紹substring(a)與substring(a,b)的用法
package com.substring.demo; public class test { /** * 關於substring(a)與substring(a,b)的運用 &nb
人生苦短,我學Python——【1】import A與from A import a
span 屬性。 屬性 人生 之間 style 需要 code pri import datetime是引入整個datetime包,如果使用datetime包中的datetime類,需要加上模塊名的限定。 1 import datetime 2 3 print(date
imshow(A,[])與imshow(A)不同
比如一幅影象A包含灰度值1,2,4,當使用imshow(A),結果就會顯示1,2,4的灰度值,從人的肉眼看去是看不出變化的。而當使用imshow[A, []]後則matlab會自動拉伸灰度值,將1,2,4變化到0,85,255.這樣影象看起來對比度明顯,肉眼也能分辨。 具體
C語言中char s[]與char *s的不同
首先看一下C語言中下面兩個語句的不同: char s[10] = “abcde"; char *s = "abcde"; 兩者不同的關鍵點如下: (1)陣列 char s[10] = "abcde" s是一個數組; sizeof(s) = 10 bytes a與&a是一樣的 abcd
C++中const char*, string 與char*的轉化
1:string轉化成const char* 可以通過呼叫string類中的c_str函式實現string向const char*的轉換 //string與const char*轉換 string s = "string_To_const char* "; const c
有關於char陣列與char*關於記憶體所在位置的探究
函式中的下一條指令,程式由該點繼續執行。 堆:一般是在堆的頭部用一個位元組存放堆的大小。堆中的具體內容由程式設計師安排。 2.6存取效率的比較 char s1[]="aaaaaaaaaaaaaaa"; char *s2="bbbbbbbbbbbbbbbbb"; aaaaaaaaaaa是在執行時刻賦值的; 而b
C++解析char *p與char p[]
首先來看一道題目: #include "stdio.h" char *get_string_1() { char p[] = "hello world!"; return p; } char *get_string_2() { ch
char a[] = "abc" 與 char *p = "def"區別淺析
char a[] = "abc"; 中a是陣列名,編譯時為其分配4個char單元,前3個單元用“abc"中的字元對應初始化,最後一個存放'\0'。 char *p = "def"; 在編譯時先生成"def"字串常量,存放在常量區,並將首地址(c的地址)賦給ch
char ** 與char * a[ ] 區別
先看 char *a [ ] ; 由於[ ] 的優先順序高於* 所以a先和 [ ]結合,他還是一個數組,陣列中的元素才是char * ,前
字串反轉&&char *p 和char a[]區別
字串反轉函式 int main03() { char buff[] = "qwertyuio"; char *p = buff; char *p1 = buff + strlen(buff) -1; printf("p1:%s\n",p1); while(p &l