Java語言中變數的初始化

來源:互聯網
上載者:User
Java語言:

在進行變數的初始化時,可以先聲明後賦值或者在聲明的同時就進行初始化。如果不對基本類型的變數進行初始化時,系統還會進行初始化。但對於數組來說,如果是基本類型的數組,系統照樣會初始化;而對於物件類型的數組就不會做那樣的操作。舉例:

 

public class test03  {static int x;static float y;static String z;static int arr[] = new int[10];static float ft01[] = new float[10];static Float ft02[] = new Float[10];static String str01[] = new String[5];static String str02[] = { "aaa", "bbb" };public static void main(String args[]) {System.out.println("x="+x);System.out.println("y="+y);System.out.println("z="+z);System.out.println("arr[1]="+arr[1]);System.out.println("ft01[1]="+ft01[1]);System.out.println("t02[1]="+ft02[1]);System.out.println("str01[0]="+str01[0]);System.out.println("str02[0]="+str02[0]);}}

運行後的結果:

x=0y=0.0z=nullc=arr[1]=0ft01[1]=0.0t02[1]=nullstr01[0]=nullstr02[0]=aaa

可以看到,對於基本類型的變數或數組,系統會自動初始化:

int---->0

float/double-->0.0

boolean-->false;

char-->' '

對於對象或基本類型對應的封裝類型:

String/Float/Doube/Integer/Boolean等不進行初始化,所以為null

 C語言的初始化

char str[10] = {0}, 這裡10個元素會被賦值為 null 字元(Null 字元),這個就是指'\0'。直接列印str[0]的值會發現,顯示的就是Null 字元,啥也沒有,但強制轉換後你會發現它的ASCII碼值為0,它佔一個位元組,其中8位全為0。
 

#include "stdio.h"#include <string.h>int main(){char str2[] = {'\0', '\0', '\0'}; char str1[10] = {0};int len = strlen(str2);    int  len1 = strlen(str1);char a = '\0';printf("len=%d;len1=%d,a=%c\n",len,len1,a);printf("c=%c\n",str1[0]);char str[200];while(gets(str)){printf("str[0]=%c,str[1]=%c\n",str[0],str[1]);if(str[0]=='0') printf("str[0]的值列印輸出");if(str[0]=='0'&&str[1]==0) break;}return 0;}

    char a = '\0'; //賦值為休止符,列印出來空,什麼都沒有,但會佔一個字元的位置,而且它不是空格,因為ASCII值為0,不是32
    char str[] = {'\0', '\0', '\0'}; //定義數組,三個元素都是休止符,sizeof結果為3,但strlen的結果是0
    char str1[10] = {0}; //這樣的賦值實際上就是賦10個Null 字元,就是'\0', ASCII碼為0

關於初始化數組:
1 指定的初始化數值不能比數組的元素多,但可以少
2 如果少,則列表中的初值被分配給從第一個元素開始的連續元素,那些沒有的到初值的元素被初始化為0---明確地說是ASCII值為0
3 如果根本沒有提供初始化列表,則情況不是這樣的,數組將包含的是無用的資料,即記憶體中本來的值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.