欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言中char*和char[]用法區(qū)別分析

 更新時(shí)間:2014年09月15日 09:18:20   投稿:shichen2014  
這篇文章主要介紹了C語(yǔ)言中char*和char[]用法區(qū)別,包括使用過(guò)程中的誤區(qū)及注意點(diǎn)分析,需要的朋友可以參考下

本文實(shí)例分析了C語(yǔ)言中char* 和 char []的區(qū)別。分享給大家供大家參考之用。具體分析如下:

一般來(lái)說(shuō),很多人會(huì)覺(jué)得這兩個(gè)定義效果一樣,其實(shí)差別很大。以下是個(gè)人的一些看法,有不正確的地方望指正。

本質(zhì)上來(lái)說(shuō),char *s定義了一個(gè)char型的指針,它只知道所指向的內(nèi)存單元,并不知道這個(gè)內(nèi)存單元有多大,所以:

當(dāng)char *s = "hello";后,不能使用s[0]='a';語(yǔ)句進(jìn)行賦值。這是將提示內(nèi)存不能為"written"。

當(dāng)用char s[]="hello";后,完全可以使用s[0]='a';進(jìn)行賦值,這是常規(guī)的數(shù)組操作。

若定義:

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

也可以使用p[0] = 'a';因?yàn)檫@是p ==s,都是指向數(shù)組的指針。

下面看另外一種定義:

char *s = (char *)malloc(n(www.dbjr.com.cn));//其中n為要開(kāi)辟空間的大小

這句話其實(shí)相當(dāng)于:

char s[n];

定義的也是一個(gè)指向數(shù)組的指針,便可進(jìn)行數(shù)組的下標(biāo)操作

例子

#include <stdio.h>

int main(int argc, char* argv[]) {
char* buf1 = "this is a test";
char buf2[] = "this is a test";
printf("size of buf1: %d\n", sizeof(buf1));
printf("size of buf2: %d\n", sizeof(buf2));
return 0;
}

結(jié)果是:

$ > ./main
size of buf1: 4
size of buf2: 15

相信本文所述對(duì)大家C語(yǔ)言程序設(shè)計(jì)的學(xué)習(xí)有一定的借鑒價(jià)值。

相關(guān)文章

  • 基于歐幾里德算法的使用

    基于歐幾里德算法的使用

    本篇文章介紹了,基于歐幾里德算法的使用。需要的朋友參考下
    2013-05-05
  • C語(yǔ)言數(shù)據(jù)的存儲(chǔ)詳解

    C語(yǔ)言數(shù)據(jù)的存儲(chǔ)詳解

    本文詳細(xì)講解了C語(yǔ)言數(shù)據(jù)的存儲(chǔ),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • C++ leetcode之刪除并獲得點(diǎn)數(shù)的示例代碼

    C++ leetcode之刪除并獲得點(diǎn)數(shù)的示例代碼

    這篇文章主要介紹了C++ leetcode之刪除并獲得點(diǎn)數(shù)的示例代碼,本文給大家分享問(wèn)題解析及解決方案,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • C++實(shí)現(xiàn)讀入二進(jìn)制數(shù)并轉(zhuǎn)換為十進(jìn)制輸出

    C++實(shí)現(xiàn)讀入二進(jìn)制數(shù)并轉(zhuǎn)換為十進(jìn)制輸出

    本文給大家介紹的是一則使用C++實(shí)現(xiàn)讀入二進(jìn)制數(shù)并轉(zhuǎn)換為十進(jìn)制輸出的代碼,實(shí)現(xiàn)起來(lái)其實(shí)非常簡(jiǎn)單,C++本身就提供了二進(jìn)制類(lèi)庫(kù)的,大家看代碼吧,簡(jiǎn)單又實(shí)用。
    2015-03-03
  • C語(yǔ)言求兩個(gè)字符串的最長(zhǎng)公共子串

    C語(yǔ)言求兩個(gè)字符串的最長(zhǎng)公共子串

    這篇文章主要介紹了C語(yǔ)言求兩個(gè)字符串的最長(zhǎng)公共子串,實(shí)例分析了C語(yǔ)言操作字符串的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • C語(yǔ)言野指針及如何規(guī)避詳解

    C語(yǔ)言野指針及如何規(guī)避詳解

    這篇文章主要為大家介紹了C語(yǔ)言野指針及如何規(guī)避詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • C++實(shí)現(xiàn)LeetCode(186.翻轉(zhuǎn)字符串中的單詞之二)

    C++實(shí)現(xiàn)LeetCode(186.翻轉(zhuǎn)字符串中的單詞之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(186.翻轉(zhuǎn)字符串中的單詞之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語(yǔ)言中的const如何保證變量不被修改

    C語(yǔ)言中的const如何保證變量不被修改

    這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中const如何保證變量不被修改的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • C++中的三大函數(shù)和操作符重載(Boolan)

    C++中的三大函數(shù)和操作符重載(Boolan)

    本文主要介紹了C++中的三大函數(shù)和操作符重載(Boolan)的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • C語(yǔ)言操作符超詳細(xì)講解上篇

    C語(yǔ)言操作符超詳細(xì)講解上篇

    C?語(yǔ)言提供了豐富的操作符,有:算術(shù)操作符,移位操作符,位操作符,賦值操作符,單目操作符,關(guān)系操作符,邏輯操作符,條件操作符等。因?yàn)槠^(guò)大將分兩篇講解,讓我們通讀本篇來(lái)詳細(xì)了解吧
    2022-04-04

最新評(píng)論