C語言學習筆記---《C陷阱和缺陷》字元和字串
C語言中的單引號和雙引號含義迥異,在某些情況下如果把二者弄混,編譯器並不會檢測報錯,從而在執行時產生難以預料的結果。
用單引號引起來的一個字元實際上代表一個整數,整數值對應於該字元在編譯器採用的字符集中的序列值。因此對於採用ASCII字符集的編譯器而言,'a'的含義與0141(八進位制)或者97(十進位制)嚴格一致。
用雙引號引起的字串,代表的卻是一個指向無名陣列起始字元的指標,該指標陣列被雙引號之間的字元以及一個額外的二進位制為0的字元'/0'初始化。
下面的這兩個語句是等效的:
printf("Hello world\n");
char hello[]={'H' , 'e' , 'l' , 'l' , 'o' ,' ' , 'w' , 'o' , 'r' , 'l' , 'd' , '/n' , 0 ,};
printf(hello);
相關推薦
C語言學習筆記---C專家程式設計 什麼時候陣列和指標相同
什麼時候陣列和指標是相同的: 規則1:表示式中的陣列名(與申明不同)被編譯器當作指向該陣列第一個元素的指標 規則2:下標總是與指標的偏移量相同 規則3:在函式引數的宣告中,陣列名被編譯器當作指向該陣列第一個元素的指標 規則1的例外情況: 1、陣列作為sizeo
C語言學習筆記---《C陷阱和缺陷》字元和字串
C語言中的單引號和雙引號含義迥異,在某些情況下如果把二者弄混,編譯器並不會檢測報錯,從而在執行時產生難以預料的結果。 用單引號引起來的一個字元實際上代表一個整數,整數值對應於該字元在編譯器採用的字符集中的序列值。因此對於採用ASCII字符集的編譯器而言,'a'的含義與014
C語言學習筆記 (003) - C/C++中的實參和形參(轉)
變化 避免 影響 學習筆記 ++ nbsp 過去 情況 真的 今天突然看到一道關於形參和實參的題,我居然不求甚解。藐視過去在我的腦海裏只有一個參數的概念,對於形參和實參的區別還真的不知道,作為學習了幾年C++的人來說,真的深深感覺對不起自己對不起C++老師 T。T 我
C語言學習筆記-1.(資料表示和輸出)
C裡面的資料表示和輸出很重要.所以在此記下一些平時會用的東西. 1.系統自帶輸出八進位制和十六進位制(整數): 輸出八進位制:%o 輸出帶字首的八進位制:%#o 輸出十六進位制:%x
C語言學習筆記:指標函式和函式指標的淺析
#include "stdio.h" #include "stdlib.h" #include <string.h> /*--------------指標函式---------------*/ int *f(int a,int b ){ int
C語言學習筆記--小端模式和大端模式
一、概念: 大端(儲存)模式:是指一個數據的低位位元組序的內容放在高地址處,高位位元組序存的內容放在低地址處。 小端(儲存)模式:是指一個數據的低位位元組序內容存放在低地址處,高位位元組序的內容存放在高地址處。 二、程式碼 #include
C語言學習筆記(五)—— 運算子、表示式和語句
一、運算子1、賦值運算子:= 賦值表示式的目的是把值儲存到記憶體位置上,用於儲存值的資料區域統稱為資料物件,使用變數名是標識物件的一種方法。物件指的是實際的資料儲存,左值是用於標識和定位儲存位置的標籤,右值指的是能賦值給可修改左值的量。void example1
C#語言學習筆記(二):變量、數據類型和運算符
tex ear 布爾值 全部 exchange result 轉換成 lis int 變量、數據類型 給變量賦值,如果想指定float,在數字後面加上F/f;如果想指定decimal,在數字後面加上m。 0-9:48-57 A-Z:65-90 a-
【黑馬程式設計師】Objective-C語言學習筆記之物件的建立、使用和方法呼叫(三)
--------------------------------------------IOS期待與您交流!-------------------------------------------- 一、物件的建立 物件是由類建立,我們使用上一文章用到的類來建立物件。 說明:
C語言學習筆記(九)—— 函式、遞迴和指標
一、函式1、一個簡單的函式示例函式是完成特定任務的獨立程式程式碼單元。#include <stdio.h> void printStar();//宣告函式原型,函式原型會指明函式的型別和函式接受的引數。前面的void是函式型別,表明函式沒有返回值 #define
c 語言學習筆記(一)基礎
lac alert https 內容 con 標記 prime c++ prime c基礎 近期工作上有對C語言算法上的需求,所以要學C,上學的時候沒學過,只學過半年的Java(我是專升本,本科學的材料),2015年工作後也學過C,那時候的需求是能看懂就可以,也就沒深入研究
C語言學習筆記
變量 col 語言學 指針變量 筆記 數組名 nbsp span 就是 一、指針 指針就是地址,指針變量是用來存放地址的變量,把誰的地址存放在指針變量中,就說此指針變量指向誰。 1.一維數組 一維數組名代表數組首元素的地址 &:取地址運算符。&a 是變量 a
梓益C語言學習筆記之常用鏈表操作函數
C語言 鏈表操作 梓益C語言學習筆記之常用鏈表操作函數一、創建鏈表void link_creat_head(STU **p_head,STU *p_new){ STU *p_mov=*p_head; if(*p_head==NULL) //當第一次加入鏈表為空時,head執行p_new { *
梓益C語言學習筆記之鏈表&動態內存&文件
C語言 鏈表 梓益C語言學習筆記之鏈表&動態內存&文件一、定義: 鏈表是一種物理存儲上非連續,通過指針鏈接次序,實現的一種線性存儲結構。二、特點: 鏈表由一系列節點(鏈表中每一個元素稱為節點)組成,節點在運行時動態生成(malloc),每個節點包括兩個部分: 存儲數據元素的數據域 存儲下一個節點地址的
梓益C語言學習筆記之常用字符串操作(sscanf & strtok)
C語言 字符串操作 梓益C語言學習筆記之常用字符串操作(sscanf & strtok)一、sscanf int sscanf(const char *buf,const char *format, …); \\從buf指定的內存區域中讀入信息 例: int a, b, c; ssc
c語言學習筆記.結構體.
成員訪問運算符 div 成員 bsp tro truct 年齡 可用 語言學 結構體: 一種用戶自定義的可用的數據類型,它允許您存儲不同類型的數據項。 定義/聲明: struct 類型名{ 成員1; 成員2; ... 成員n; } 變量
C語言學習筆記之字符串拼接的2種方法——strcat、sprintf
fir str return print 文章 %s rst stdlib.h 字符串拼接 本文為原創文章,轉載請標明出處 1. 使用strcat進行字符串拼接 #include <stdio.h> #include <stdlib.h> #incl
c語言學習筆記 if語句的條件判斷
圖片 分享 筆記 賦值 if條件 語句 int image 運算符 可能經常會看到錯誤的if語句示範,比如這樣的: if(a=6) { printf("hello"); } if語句塊執行的條件是if條件的運算結果不是0則執行if語句塊。 a=6這是個賦值運算符
c語言學習筆記-if語句塊一定要加分號
學習 語言 括號 語句 執行 -i c語言學習 c語言 分號 if(a>6) printf("hello");//語句1 printf("world");//語句2 當a>6的時候,執行的分支語句是語句1,而不是語句1和語句2,雖然結果是語句1和語句2都被執
〖C語言學習筆記 〗(一) HelloWorld
文件頭部 標準 變量 標準輸出 class 語言學 你好 a.out 格式 前言 本文為c基礎入門學習筆記 正文 HelloWorld #include <stdio.h> //標準輸出流 int main() //每種語言都有一個執行入口,main方法就是其